perm filename DOC[DOC,TOB]2 blob sn#014761 filedate 1972-11-26 generic text, type T, neo UTF8
00005	COMPARE WITH MIT EVALUATION
00100	EVALUATION OF PDP-11 /40 VS NOVA 820 JUMBO
00200		MACHINE CODE MORE DIFFICULT
00300			NO PUSHDOWN INSTR ON NOVA
00400			SHORT ADDRESS HACK
00500			SELF-RELOCATABLE(RELATIVE TO PC) ON BOTH
00600			NO PUSHJ OR POPJ ON NOVA-SUBROUTINES THROUGH FIXED REGISTER
00700			MOST INSTR ARE REGISTER-REGISTER; REQUIRES ANOTHER INSTR
00800		I/O EASIER ON PDP-11
00900			DIRECT TO MEMORY ON THE UNIBUS
01000		STANDARD MACHINE DESIRABLE
01100			PDP-11 IS A REASONABLE CHOICE. OTHERWISE, IF NO STANDARD
01200			THEN WHEN IBM GETS IN THERE WILL BE A DE-FACTO STANDARD
01300			TO SOME EXTENT THE MACHINE DETERMINES STYLE OF PROGRAMMING
01400			AND I THINK WE NEED SOME COMPUTER SCIENCE INPUT INTO THE
01500			STANDARDIZATION
01600		HARDWARE/SOFTWARE COMPATIBILITY (AT MIT-AI)
01700		
01800		OPTIONS		FLOATING POINT, PAGING
01900	
02000		CORE SIZE OF PROGRAMS
02100			WE WOULD EXPECT NOVA TO USE MORE CORE.  NICK AND
02200			PAT FOUND ABOUT EQUAL, IF ANYTHING, SMALLER FOR THE
02300			NOVA.  THAT DEPENDS ON TYPE OF PROGRAM I SUPPOSE.
02400	
02500		COST OF MACHINE AND PERIPHERALS
02600			FOR EQUIVALENT MACHINES, THE NOVA IS ABOUT 50% LESS
02700			THAN THE PDP-11.  FOR A JUMBO 820 WITH A DISK $14K
02800			AND FOR A PDP-11/40, ABOUT $20K.
02900	
03000	
     

00100	T. O. BINFORD
00200		RANGING AND EYE HARDWARE STUDIES
00300		REPRESENTATION OF SHAPE
00400		MULTI-ENTRY CODING
00500		COLOR LINE FINDING
00600		MONOCULAR RECOGNITION OF SHAPE
00700		SHAPE FROM STEREO DATA
00800	
00900	G. J. AGIN	STUDENT
01000		SHAPE DESCRIPTION AND RECOGNITION FROM DEPTH DATA
01100	R. K. NEVATIA	STUDENT
01200		STEREO CORRELATION AND MOTION STEREO
01300		SHAPE DESCRIPTION AND RECOGNITION FROM DEPTH DATA
01400	R. BAJCSYOVA	STUDENT
01500		TEXTURE BOUNDARIES AND TEXTURE DESCRIPTION IN FOURIER DOMAIN
01700	
01705	
01710	
01715	
01720	
01725	
01730	
01735	
01740	
01745	
01800	
01900	
02000	
02100	J.A.FELDMAN
02150		SAIL AND HAND/EYE SYSTEM
02155		GRAMMATICAL INDUCTION
02160		BAYESIAN STRATEGIES
02200	
02300	A. GILL		STUDENT
02400		VISUAL FEEDBACK
02500	G. GRAPE	STUDENT
02600		GENERATION OF LINE DRAWINGS
02700	S. GANAPATHY	STUDENT
02800		LEARNING OF NEW OBJECTS IN COMPLEX
02900	Y. YAKIMOVSKY	STUDENT
02905		LINE VERIFIER AS BAYESIAN EXAMPLE
03000	
03100	
     

00100	J. ZINGHEIM   STAFF, TECHNICIAN
00200	K. K. PINGLE	STAFF,HAND/EYE SYSTEM
00300	R. P. ORBAN	STAFF,HAND/EYE SYSTEM
00400	LOU PAUL	STAFF,STUDENT
00500		ARM SOFTWARE
00600		AVOIDANCE
00700		FORCE-CONTROLLED MOTIONS
00800	VIC SCHEINMAN	STAFF ENGINEER: ARM DESIGN AND HARDWARE
00900	
01000	
01100	
01200	
01500	A. J. THOMAS	STUDENT
01600		PSYCHOLOGY, STEREO USING JULESZ PATTERNS
     

00100	WHAT WE ARE DOING
00200	
00300	FORCE SENSING AND FORCE-CONSTRAINED MOTIONS
00400	TOOL OPERATION
00500		SCHEINMAN AND PAUL
00600	
00700	SHAPE DESCRIPTION AND RECOGNITION OF COMPLEX OBJECTS
00800		AGIN, NEVATIA, TOB
00900	
01000	VISUAL FEEDBACK
01100		GILL
01200	
01300	STUDY OF VISUAL HARDWARE
01400		RANGING AND EYES	TOB
     

00100	IT IS USEFUL TO EXAMINE OPERATORS OF ALL SIZES IN A PICTURE.
00200	THE SIZE OF THE OPERATOR MATTERS ONLY FOR FACTORS OF TWO,
00300	SO THAT BY ALL SIZES, WE CAN AS WELL SAY SIZES WHICH ARE 
00400	POWERS OF TWO.  K SHIFTS AND ADDITIONS ARE ENOUGH TO
00500	SUM OVER AN INTERVAL 2↑K TO THE LEFT OF A POINT.  2K SHIFTS
00600	AND ADDITIONS ARE ENOUGH TO SUM OVER A SQUARE 2↑K ON A SIDE.
00700	MOREOVER, AS INTERMEDIATE STEPS, WE HAVE COMPUTED SUMS FOR
00800	ALL SQUARES 2↑H ON A SIDE, WHERE 0<H<K.
00805		BY UPDATING SUMS, WE CAN SUM OVER AN INTERVAL BY
00810	AN OPERATION WHICH IS INDEPENDENT OF THE SIZE OF THE
00815	SUPPORT SIZE.  THE TIME FOR THIS OPERATION IS ABOUT
00820	50 MICROSECONDS PER POINT.
00900		WE CAN DIFFERENCE OR MULTIPLY SHIFTED IMAGES TO 
01000	DO VARIOUS CORRELATION OPERATIONS, WHICH CAN BE SUMMED
01100	BY THAT SCHEME.
     

00005		PROGRESS WITH MANIPULATION
00010		THE NEW ARM BECAME OPERATIVE IN THE LAST FEW DAYS OF 
00015	1970.  BY THAT TIME, A SERVO ROUTINE WAS WORKING WHICH USED
00020	TRAJECTORY SERVO WITH A NEWTONIAN MODEL OF THE ARM.  INSTEAD
00025	OF POINT BY POINT PROPORTIONAL SERVO, THIS CONTROL ROUTINE
00030	FOLLOWS SMOOTH PREPLANNED TRAJECTORIES, TAKING INTO ACCOUNT
00035	GRAVITY AND INERTIAL LOADING, EQUIVALENT TO VARYING SERVO
00040	CONSTANTS THROUGH WIDE RANGES.
00045		A TRAJECTORY PLANNING PROGRAM DESIGNS TRAJECTORIES
00050	WHICH ARE USEFUL FOR MANIPULATIONS, AND WHICH ALLOW SPECIFYING
00055	APPROACH AND DEPARTURE ANGLES.  A USER PACKAGE
00100	PLANS FOR HANDS
00200	
00300	SOFTWARE			HARDWARE
00400	
00500	USER PACKAGE
00600	INSTANT INSANITY
00700	NON-LINEAR CALIBATION
00800	AVOIDANCE
00900	TASKS WITH THREE OR MORE FINGERS
01000		PICK UP IRREGULAR OBJECTS
01100	TASKS W/ FORCE FEEDBACK		JOINT FORCES
01200	  PUT PIN IN HOLE		  MOTOR TORQUES
01300	  TURN CRANK			  DIRECT SENSORS
01400	TASKS W/TOUCH FEEDBACK		TOUCH SENSORS
01500	  GROPING			  FINGERS
01600	  SHAPE OF OBJECTS		  PERIPHERAL
01700	  IRREGULAR OBJECTS
01800	TASKS W/ VISUAL FEEDBACK
01900	  STACKING
02000	  COORDINATION FOR GRASPING
02100	TASKS WITH VELOCITY CONTROL
02200	  THROWING
02300					5 FINGER HAND
02400					WRIST WITH INCREMENTAL MOTION
02500	
02600	THERE ARE A NUMBER OF PROBLEMS ASSOCIATED WITH THE INSTANT
02700	INSANITY TASK OF TURNING OVER OBJECTS.  THE PRESENT SOLUTION
02800	PROCEDURE CHOOSES THE FIRST POSSIBLE SOLUTION, LARGELY BECAUSE
02900	OF TIME CONSTRAINTS.  THE RESULTING SOLUTIONS TEND TO SPRAWL
03000	NEAR THE TABLE MORE THAN IS CONVENIENT FOR AVOIDANCE.  IT IS
03100	CLEAR THAT FOR AVOIDANCE, WE WANT TO TEND TOWARD SOLUTIONS
03200	WITH THE ARM OPERATING FROM ABOVE.  THE SIMPLEST FIX IS
03300	TO CHOOSE THE SOLUTION WHICH CAUSES APPROACH AND DEPARTURE
03400	ANGLES TO BE AS NEAR VERTICAL AS POSSIBLE.  FOR TURNING OVER
03500	A CUBE, THIS MEANS APPROACHING AT -45 DEGREES AND DEPARTING
03600	AT +45 DEGREES.  THOSE ANGLES ARE NOT ALWAYS POSSIBLE WITH
03700	THE ARM IN CERTAIN POSITIONS.
03800	IF WE TRIED ALL FOUR POSSIBILITIES FOR PICKING UP A BLOCK BY
03900	ITS FACES, WE MIGHT FIND MUCH BETTER SOLUTIONS FROM THE
04000	STANDPOINT OF VERTICALITY, YET WE CANNOT AFFORD 4 SEARCHES
04100	THROUGH LIMITS OF APPROACH AND DEPARTURE ANGLE.  WE MIGHT INSTEAD
04200	SUGGEST THAT FOR THAT TASK, WE ARE ESSENTIALLY ORIENTING THE
04300	WRIST WITH RESPECT TO THE TABLE, AND FOR ORIENTING THE WRIST,
04400	THE WRIST ROTATIONS ARE RELEVANT.  THEN WE WANT TO MOVE
04500	THE BLOCK TO AN ANGLE WHERE THE ROTATIONS ARE EASY, AND MAKE
04600	THE RIGHT WRIST ROTATIONS.  BEYOND THAT, WE CAN THINK OF
04700	HAVING A MODEL OF THE ARM, AND PIECE TOGETHER TRAJECTORIES
04800	FROM THE NATURAL MOTIONS OF THE ARM.  FOR THE TIME
04900	WHEN WE GET REDUNDANT DEGREES OF FREEDOM, THAT WILL BE
05000	MORE OR LESS NECESSARY.  WITH AN ARM WHICH HAS ONLY THE CANONICAL
05100	SIX DEGREES OF FREEDOM, WE WOULD INVESTIGATE AN ARM MODEL
05200	AS A WAY OF FINDING NOT ONLY THE FIRST SOLUTION, BUT SOME
05300	GOOD SOLUTIONS AND PERMIT CUTTING COMPUTATION OF TRAJECTORIES
05400	SOME LONG RANGE HAND/EYE PROGRAMS
05500	
05600		CURRENTLY, WE HAVE A GOOD PROGRAM IN MANIPULATORS.
05700	WE HAVE A STABLE, LOW COST ARM WITH A USER SOFTWARE PACKAGE.
05800	IN THE IMMEDIATE FUTURE, WE WILL BE DOING:
05900			AVOIDANCE OF OBJECTS
06000			TASKS REQUIRING JOINT FORCE SENSING
06100			TASKS REQUIRING TOUCH SENSING
06200	FOR THE LONG RANGE, THERE ARE SEVERAL THINGS THAT WE WOULD
06300	LIKE TO CONSIDER SERIOUSLY.  
06400		1  SELF PROTECTION REQUIRES THAT THE ARM STRUCTURE
06500		HAVE LOW JOINT STIFFNESS.  WITH A STIFF STRUCTURE,
06600		EVEN WITH TOUCH SENSING, THERE IS ONLY A FEW MILS
06700		TRAVEL IN WHICH TO STOP THE ARM BEFORE DAMAGE, SO 
06800		THAT PROTECTION IS IMPOSSIBLE.  WITH A COMPLIANT
06900		STRUCTURE, THERE MAY BE A HALF-INCH OR MORE OF
07000		TRAVEL AS THE STRUCTURE FOLDS, BEFORE DAMAGE. AS
07100		HANDS BECOME MORE COMPLICATED, THE RISK OF DAMAGE
07200		INCREASES.
07300		AT THE SAME TIME, JOINT FORCE SENSING BECOMES VERY
07400		EASY WITH COMPLIANT JOINTS.
07500			HOW TO MAKE LOW STIFFNESS ACTUATORS
07600			FOR ARMS
07700	
07800		2 TOUCH SENSORS ARE VERY POORLY DEVELOPED.  SENSITIVITY
07900		SPATIAL RESOLUTION, AREA COVERAGE FOR PERIPHERAL
08000		SENSORS AND MINITURIZATION OF ASSOCIATED ELECTRONICS
08100		AND MULTIPLEXORS ALL REQUIRE ABOUT AN ORDER OF MAGNITUDE
08200		IMPROVEMENT AS A FIRST TARGET.
08300		IMPROVED SENSORS WOULD ALSO BE VALUABLE FOR 
08400		PROSTHETIC DEVICES FOR AMPUTEES.
08500	
08600		WE SUGGEST THAT DR. KEN WISE IN DR. ANGELL'S LAB
08700		HAS INDICATED INTEREST IN THIS PROBLEM, AND
08800		THAT A RESEARCH EFFORT BE FUNDED THERE.
08900	BY LARGE AMOUNTS.
     

00100		SPECIFICATIONS FOR VISUAL DEVICES
00200	
00300	TYPICAL TASKS AND SAMPLE SYSTEMS
00400		All of our tasks are to access some area of the frame
00500	and read a number of intensity values near that area.  We 
00600	distinguish area scan, edge following, or tracking according
00700	to the extremes of reading a large number of points near one
00800	position, or reading a small number of points at separate
00900	positions.  For reading n by m points, access times and sample 
01000	times determine the task reading time by:
01100		read time=access time+( n * sample time + line access)*m lines
01200	uUsing our PDP-10 computer, 10 microseconds is the minimal time
01300	for minimal processing per point, and 100 microseconds is a 
01400	nominal time for complicated processing per point.  Thus the 
01500	sample time 100 usec to 10 usecs is adequate for our current 
01600	usage, but will be obsolete as faster processors are available.
01700	If we choose the access time to be 100 per cent of small sample
01800	reading time, then assuming a sample of 30 points, access time
01900	of 3msec to 300 usec is indicated for tracking.  That allows
02000	tracking at intervals of about 5 msec.  Of course for area
02100	scans, larger access times are tolerable.
02200		The other design criteria are signal to noise,
02300	dynamic range, and spatial resolution over windows of the 
02400	scene.  These criteria are related by a condition on memory
02500	bandwidth.  Fixed scan systems seem inadequate; flexible scan
02600	selection seems necessary for high resolution with reasonable
02700	grey levels, according to the memory bandwidth of the system.
02800	We now encode 7 samples of 4 bits each , in one microsecond,
02900	over a frame 230*327.  We require more intensity information,
03000	presumably 7 bits.  Since frame times are fixed, the highest
03100	resolution determines the sample rate.  We can raise the
03200	current bit rate by a factor of 3 perhaps, which allows less
03300	than a factor of two increase in sampled points, or less than
03400	40 percent increase in resolution.
03500		Simply raising bandwidth does not seem the answer to 
03600	improving signal/noise for commercial TV cameras.  Noise is 
03700	preamp bandwidth-limited.
03800		The specimen systems have hypothetical components
03900	somewhat related to real devices but intended to provoke
04000	specific discussion and alternative proposals.  We distinguish
04100	between imaging sesors (eg vidicon) and imaging sources 
04200	(eg laser spot).
04300	
04400	1  Laser projection device with acousto-optical or digital 
04500	deflection:  This system would use a 500*500 two-dimensional
04600	deflection scheme.  Using an acoustic device deflecting by
04700	Bragg diffraction, the access time of 100 microseconds
04800	with 400 spots over 10 milliradians is feasible.  Use
04900	of an acoustic lens (Crumley) could enhance resolution.
05000	The system is essentially random-access.  Average reading
05100	for 32/1 signal/noise would be 20 nanosec.
05200	
05300	2  Laser projection with mechanical deflection:
05400	A two-dimensional galvanometer mechanical deflection system with 
05500	a random-access time of 1 msec and 1000*1000 resolution is
05600	feasible.
05700	
05800	3  Unkown low-noise scanning camera:
05900	Assume an unknown low-noise scanning camera which has a windowing
06000	facility, either a variable scan rate or a variable scan frame.
06100	This encounters "burn-inY problems which can be minimized by
06200	intermittent scanning, on demand.  Charge stabilization may
06300	require initialization scans.
06400	
06500	4  Semiconductor array in an image dissector or with
06600	a deflectable image intensifier:
06700	Linear arrays of photodetectors self-scanned by shift register
06800	are currently available in units of 48.  Larger arrays are in
06900	development; a linear array of a few hundred detectors can be made
07000	by joining smaller arrays.  Using magnetic deflection, the
07100	access times are about 10-100 usec and sample times are decrease
07200	by integration of the array in parallel.
07300	
07400	5  Semiconductor arrays with mechanical deflection:
07500	Several hundred detectors in a small array, accessed with 
07600	mechanical deflection with access times of 1 msec.  As in 
07700	4) above, if the sample time for a single detector is 
07800	of the order of .3 msec for the required signal to noise,
07900	the effective sample time might be a factor of 20 less.
08000	Bandwidth would be about a factor of 20 smaller than in the 
08100	current vidicon system.
08200	
08300	PROPERTY	CURRENT		TARGET A	TARGET B
08400	gray levels	16 linear	128 log		512 log
08500	dynamic range	
08600	  within scene	16/1		64/1		400/1
08700	  overall	10,000		10,000		1,000,000
08800	signal/noise	1/1 to 32/1**	32/1 diI/I	64/1 dI/I
08900	access time	30 msec		1 msec		10 usec
09000	sample time	140 nsec	10-100 usec	1 usec
09100	band width	28Megabits/sec	<56Megabits/sec	<56Megabits/sec
09200	resolution	230*327		512*512		1000*1000
09300			300 lines 50%MTF
09400	sensitivity
09500	low light level	1 ft-c		as required by	as required by
09600					sample time,dynamic range,
09700					depth of field, signal/noise
09800	depth of field	30 cm at 1m	30cm at 1m	30cm at 1m
09900	color		3 color		3 color		3 color
10000			broad band	broad band	broad band
10100			3 filters 1sec			color camera
10200	adaptation	autotarget	
10300	
10400	*  
10500	By subranging on successive frames, and averaging, 64 useful
10600	levels can be obtained with the present camera over the entire
10700	frame in 8sec.
10800	** With a vidicon, noise is constant, independent of signal,
10900	hence signal/noise is proportional to signal. The other figures
11000	are quoted for signal/noise independent of signal.
11100	
11200	Dynamic Range
11300		Overall scene illumination  may vary by factors of
11400	order of 10↑6 to 1 for the cart, and by much smaller factors
11500	for the hand-eye tasks.  Automatic target control, variable aperture
11600	variable integration time (image dissector), variable light
11700	source intensity are means of adaptation to overall scene illumination
11800	levels.  Some means of overall adaptation must be provided; the
11900	accomodation can be quite slow; humans do well with accomodation times
12000	of minutes.  With humans, aperture control accounts for only a factor
12100	of 10 in adaptation.
12200		Adaptation provides a wide dynamic range for a device
12300	with lower intrinsic dynamic range.  The intrinsic dynamic range must include
12400	the product of object reflectance and illumination ranges.  Object
12500	reflectances vary from about 0.98 to 0.04 for carbon black, a factor
12600	of about 20/1.  Non-uniform illumination can produce equally large dynamic
12700	range factors; as an example, a point source illuminating an area
12800	1 foot sq at 3 feet would have a factor of 2/1 for inverse square
12900	radius and 30/1 for the cosine dependence.
13000	Diffuse illumination could lower this dynamic range considerably, but 
13100	specular reflections are hard to avoid.  To estimate
13200	the effects of specular reflection, the effect is equivalent
13300	to viewing the source directly over the folded path:
13400			specular	spec refl * (obj dist)↑2
13500			_______    =    _______________________
13600			matte		matte refl * (aperture)↑2
13700	
13800	which might typically be of order 10↑4. Since the specular content
13900	is more or less distinct from the other dynamic range contributions,
14000	we need only crude information on intensities very far from the mean.
14100	The human visual system provides this information by an S-shaped
14200	response curve about the adaptation level.  Differential response
14300	is greatest for intensities near the adaptation levle.
14400	A device soon to be commercially available (Plumbicon with
14500	anti-comet tail gun) has that response curve at high intensities.
14600		Intrinsic dynamic range of this device should be about 400/1, and
14700	we might adopt 100/1 as an intermediate goal.
14800		When we define dynamic range, we should specify the
14900	signal/noise ratio we want, over the whole dynamic range.
15000	As mentioned above, this might be compromised at the extremes.
15100	To discriminate other than black and white, we would want
15200	about 16/1 signal/noise over the whole dynamic range.  This could
15300	define an EFFECTIVE SIGNAL/NOISE.
15400		Note:  the new vidicon(1971) has a special feature
15500	which sllows us to have large dynamic range within a scene.
15600	The blanking has been moved to the grid as a special option
15700	which allows us to modulate cathode voltage essentially 
15800	point by point over the image, to allow LOCAL ADAPTATION of the 
15900	vidicon.
16000	SIGNAL TO NOISE
16100	
     

00005	SAIL
00200		0  HAND/EYE MONITOR SHOULD HAVE ACCESS TO WHICH PREAMBLE
00250			WAS USED IN COMPILING EACH MODULE, AND SHOULD
00275			WARN OF INCOMPATIBILITY.
00300		1  ORDERED LISTS	(ITEMS OR SUBLISTS)
00400		2  ASSOCIATIONS ABLE TO BE ITEMS, 
00500			RETRIEVAL OF UNIQUE ASSOCIATIONS
00600		3  ALL THREE LEAP PAGES
00700		4  UNTYPED ITEMVARS
00800		5  MIXED MODE ARITHMETIC, ARRAYS AND VARIABLES
00900			ALLOWED TO HAVE FIXED AND FLOATING MODES
01000		6  CONDITIONAL ASSEMBLY
01100		7  INTERPRETER
01200		8  PRETTY PRINT    --- EXISTS
01300		9  DUMPS OF RUNNING PROGRAM
01400		10 OPTIMIZE A[I,J]←A[I,J]+1
01500		11 OVERLAYS
01550		12  DOUBLE PRECISION
01555		13 CHANGE FORM OF LEAP CALLS TO MAKE DEBUGGING POSSIBLE
01560	
01600	
01700	FELDMAN FAVORS THESE CHANGES
01800		CO-ROUTINES
01900		PATTERN PROCEDURES (PLANNER-LIKE)
02000		GLOBAL CONTEXTS
02100		DYNAMIC TYPE CHECKING
02200	
02300	KAY FAVORS THESE ADDITIONAL CHANGES
02400		DEFINED DATA TYPES	DCS SAYS ASSOCIATE FUNCTIONS WITH ITEMS
02450		VARIABLE NUMBER OF ARGS (REQUIRES ABILITY TO UNWIND STACK)
02475		SENSITIZE VARIABLES (AT COMPILE TIME, OR WITH ADDRESS REGISTER,
02487			OR WITH FLAG BITS)
02500		PASSING CONTEXT
02505	
02510	
02600	RUSS TAYLOR PLANS TO BEGIN IN AUGUST WITH
02700		INTERRUPTS
02750			ANDY SUGGESTS USING PL1 ON STATEMENT AS FORMAT
02775			JACK CAUTIONS ABOUT DEFERRING INTERRUPTS IN SENSITIVE
02780			PLACES LIKE CORE OPERATIONS AND OTHER SYSTEM TIGHT PLACES.
02785			ALSO ABILITY TO PUSH 40 AND 41 AND RESTORE THEM.
02790			WOULD LIKE FULL POWER OF SAIL AT TOP LEVEL TO USE
02795			AT LOWER LEVEL.
02800		UNWINDING STACK (F REGISTER)
02900	
03000	
03005	SWINEHART HAS THESE ADDITIONAL SUGGESTIONS
03010		BETTER MACROS AND STRING CONSTANTS
03015		VARIABLE NUMBER ARGS IN MACROS AND PROCEDURS
03020		DATUM OF ITEM CAN'T BE STRING
03025		MESSAGE PROCEDURES CAN'T GET VALUES BACK
03030		REFINEMENT TO MACHINE LANGUAGE
03100	
03200	
03300	
03400		MY PRIORITIES FAVOR THOSE CHANGES WHICH IMPROVE
03500	THE FACILITY FOR INTERACTION AND DEBUGGING.  SAIL DOES
03600	LITTLE TO USE THE ADVANTAGES OF TIME-SHARING; IT HAS NOT
03700	GONE FAR FROM TRADITIONAL LANGUAGES IN DEBUGGING FACILITIES.
03800	AN INTERPRETER AND THE ABILITY TO MAKE DUMPS AND RESUME
03900	DURING EXECUTION (I/O PERMITTING) ARE FIRST STEPS.
04000	
04100	
04200	BAD FEATURES OF SAIL WHICH CAN BE CHANGED WITHOUT SIGNIFICANT
04300	STRUCTURAL CHANGES
04400		IMPROVED ERROR MESSAGES
04500		COMPLETE COMPILATION IN SPITE OF ERRORS  *****
04600		COMPILER SIZE AND SPEED
04700	
04800	TENENBAUM SUGGESTS
04900		CHECK POINTS IN COMPILATION TO BACK UP
05000				(EVEN USER DESIGNATED)
05005		MAKE A*⊗B={SET}
05010		WAY OF INFORMING TRANSITIVE, REFLEXIVE RELATIONS(TRAMP, UNIV OF MICH)
05015		KNOWN BUGS
05020			S←(A⊗B)∪(C⊗D)
05120	
05220	WHAT TASKS WOULD WE LIKE TO DO IN SAIL THAT ARE DIFFICULT
05320		REGION FOLLOWING: USING TOB SUCCESSOR, PREDECESSOR SCHEME
05420		WITH LISTS, REGION FOLLOWING IS A 1 PAGE LISP OR FAIL
05520		PROGRAM.  MOST CONVENIENT EXPRESSION IS IN TERMS OF 
05620		HASHED RELATIONS
05720			SUCCESSOR OF LINE A AT VERTEX B IS LINE C
05820			PREDECESSOR OF LINE A AT VERTEX B IS LINE D
05920	
06020	THIS CAN BE DONE WITH FAIR EFFICIENCY NOW USING
06120		L1*V1=L2 FOR SUCCESSOR
06220		
     

00100		The following hardware plans require technician help:
00200			instrument new TV camera
00300			debug TV digitizer
00350			modify target voltage A/D to read actual voltage
00400			build new log difference digitizer (Fairbairn)
00500	done?		debug multiplexer and A/D for arm
00600			touch sensors
00700			update kluge bay drawings
00800			current controller for arms
00900			build Quam arithmetic unit
01000			underflow mod to PDP-10
01100			new arm safety device
01200			second arm
01250			movie making
01255			new hand and wrist with incremental motion
01260				and independent fingers
01265			new 5 finger hand 
01300	Estimate time required for these things:
01400			instrument TV  3weeks
01500			debug TV digitizer 1 week
01600			log difference digitizer 6 weeks
01700			debug multiplexer and A/D 2 weeks
01800			touch sensors 4 weeks
01900			update kluge bay drawings
02000			current controller for arm 4 weeks
02100			Quam arithmetic unit 16 weeks
02200			underflow mod    
02300			new arm safety device 2 days
02400			second arm 12 weeks
     

00200		We are investigating the color response of the 
00300	vidicon in order to compensate for a phenomenon which I call "shrinking
00400	of the color triangle".  Basically, if we have a set of coordinates,
00500	R, B,
00600	 and G, we make a color triangle from any pair of the normalized coordinates
00700	R/(R+B+
00800	G) and B/(R+B+G) which make the triangle (0,0)
00900	(1,0) and (0,1) which is filled by data points from saturated colors at
01000	low target voltage.  At higher target voltage, the same color as seen through
01100	the TV camera shrink toward the center of the color triangle, appearing
01200	much less saturated and difficult to separate.  
01300		We have no answer to the apparent loss of saturation, except
01400	to make the observations that vidicons make acceptable color devices
01500	and thus we should be able to work with a vidicon.  Also, the monitor
01600	shows large differences when flipping filters, even when target voltages
01700	are high.  This also makes us guess that we should be able to get color
01800	readings with adequate separation.  The simplest sort of scaling has 
01900	already been included, however.  Any non-linear effect would be
02000	enough to cause some shrinking (assuming it were in the direction of 
02100	reducing high values) as the gamma effect in vidicons does.  The 
02200	color recognition program does that correction for gamma, using a 
02300	nominal value of gamma=.65.  It is possible that the gamma correction 
02400	requires a drastically different gamma, or that gamma is a sharp 
02500	function of target voltage.  We are investigating these and other
02600	scaling effects in order to make adequate corrections.  If that fails,
02700	we will try a plumbicon, which has adequate spectral response and
02800	also has response independent of target voltage.  However, it is 
02900	not possible to adapt the sensitivity of the plumbicon, and thus it is
03000	much less versatile than the vidicon, which has adequate adaptability 
03100	to handle many outdoor light problems, particularly with local adaptation
03200	as we have attempted to use.
03300	
     

00100		we are in the process of debugging the 
00200	
00300	
00400	TV input chain, and now the A/D for the arm.  For the TV digitizer,
00500	Joe Zingheim found that the oscillation of the high-order bit was due
00600	to an inverter which was TTL instead of RTL as the rest of the chain.
00700	Presumably that was because the TTL was much noisier than RTL.  There
00800	was replaced with a pair of RTL to balance gate delays.  
00900		
01000		That showed up another fault of the A/D which gave considerable
01100	low amplitude noise  with a period of 9.  That implicated the 167
01200	word dumping, and after a little investigation, showed that power supplies
01300	which were shared by the TV digitizer and the 167 were being loaded by
01400	the 167 when it dumped a word, causing considerable noise for the digitizer.
01500	We do not know yet whether there are ground loops which damage the A/D
01600	or whether, as suspected by JMT, there is a natural oscillation built
01700	into this design.  
01800		The latter requires some explanation.  The claim is that if we take
01900	a power supply and slowly turn the voltage past some value, the switching 
02000	of a comparator draws enough current to drop the voltage, turning off that
02100	comparator, thus an oscillation.
02200		We are going ahead with a suggestion of Earnest, that of digitizing
02300	with a log difference encoding.  
02400	This would be a difference encoding, except that the steps are 
02500	logarithmic.  
02600	Thus, it takes many steps to make up a large difference in difference
02700	encoding, while that would take many fewer steps with the log encoding..
02800	Quam has simulated the log difference encoding on 6 bit log images
02900	digitized on iiiIII readers. There is no difference to the eye between
03000	the six bit log data and the four bit log difference data.
00100		Another A/D problem is with the 
00200	A/D for the arm pots.  Lou Paul has found that 
00300	there are 5Mc, 10Mc, and 50Mc noise components that are about
00400	20mv and quuite distressing.  A long process of finding ground 
00500	loops and power supply isolation problems is ahead.
     

00100		
00200		I value  the fast 6 bit arithmetic processor which Quam talks about
00400	as the most important single aid to vision.  Presently, we are able to 
00500	estimate the time for processing three-color images at about three minutes
00600	for a full TV image.  The processor is nearly finished.  In time-sharing,
00700	we can count on only a fraction of the processor time, perhaps 10%, which
00800	means that we must count on about 30 minutes per full TV image.  We
00900	really want to do stereo, which doubles our estimated time to one hour 
01000	per scene.  That is really too long to do anything real-time, interactive
01100	or even to get many tries at debugging.  We must do something to make
01200	our processing more effective.  
01300		iI don't see a great speedup in the techniques for detection,
01400	although we continue to search for one.  We can gain a factor of about
01500	10 on the estimated time of one hour for 3 color stereo if we have a 
01600	dedicated PDP-6 or PDP-10 to work with.  
01700	
01800	Super Foonly gives about
01900	the same increase in speed, for which we guess about 6 minutes per
02000	full scene, three color stereo with 10% service in time-sharing.
02100	The proposed Quam box is guessed at about a factor of 50-100 faster
02200	for useful operations of the sort that I do a lot of.
01600	code.
00100		We have been contacted by a group in the Medical School 
00200	who are studying non-destructive testing of the heart by use of
00300	ultrasonic echo techniques.  Briefly, the transit time for echos
00400	measures the depth of a discontinuity in the medium.  The ultrasound
00500	transducers are outside the body, and echoes mark the various walls
00600	of heart chambers.
00700		They are interested in recording the echoes and monitoring
00800	them with a small computer, and then doing reconstruction and 
00900	display on a larger computer.  They are interested in our facilities
01000	and direction for an off-line interpretation and display of the
01100	heart function.  
01200		They are looking for scar tissue and dead areas of the
01300	heart wall, particularly on the interior wall of the left ventricle.
01400	1.  Describe the volume inside the left ventrile and display it
01500	(not in real time)
01600	2.  Display wall thickness throughout the cardiac cycle
01700	3.  Make a velocity display of small areas of the muscle
01800	at various times throughout the cardiac cycle.
01900	
02000		We could supervise a student working on this problem
02100	which involves three-dimensional modelling and display.
     

00100		We should make an accurate evaluation of the hand/eye
00200	monitor to evaluate what it does for us and what needs to be improved.
00300	
00400	The primary goal of the system is to enable us to make modules
00500	and run them without combining into one single job and without
00600	providing overlays or swapping in that single job.  To get beyond the
00700	the limitations of a single job, we have a system.  
00800	
00900		Suggestions for improvement of the system are centered around
01000	making debugging possible.  These are both user conventions and system
01100	capabilities.  
01200			1.  repeatibility-stored data
01300			There seem to be two important things here.  One is that
01400			users design their programs to be able to use stored data
01500			and that the system be able to use stored data.  The other
01600			requirement is that the system allow dumps of images in
01700			the process of execution, and that it be possible to 
01800			resume these dumped images (subject to obvious condition
01900			about open i/o files, changed real-time conditions, etc).
02000	
02100			2.  interaction
02200			SAIL is now a strictly compiled language, and as such
02300			allows no interaction, except through RAID, where the
02400			interface is 
     

00100		We discuss the intended development of touch sensors
00200	for manipulation tasks of the hand/eye system.  For our
00300	discussion, consider an artificial skin with force sensors
00400	embedded in a deformable material, in an
00500	array of about 10x10, with sensitivity to light
00600	touch.  The issues we will discuss are:
00700			1)specifications
00800			2)feasibility with existing techniques
00900			3)incremental utility; what can we do with a 
01000			small amount of additional software along current lines
01100			of effort
01200			4)long range utility; what will we do toward complex tasks
01300			which will be greatly aided by touch sensing.
01400	
     

01500	SPECIFICATIONS
01700		To be able to sense mis-alignments 
01800	in assembly without disturbing structures, a sensitivity
01900	at least as good (and hopefully 10 times better) as to 
02000	sense a penny on a fingertip --1 gm per sq cm pressure
02100	is a useful target.
02200	
02300		we require only crude proportionality and linearity,
02400	and we can tolerate drift (or so it seems now) because
02500	we can compensate for level shifts by modifying 
02600	thresholds on a one second basis
02700	
02800		We can use the computer to do simple processing on the
02900	direct output from each sensor, so that we can tolerate
03000	considerable variation in response characteristics among
03100	the sensors and their calibration.
03200	
03300		The sensors must be intrinsically self-protected
03400	from large loads by some force-limiting mechanism or by an intrinsic
03500	very high maximum force limit.  Self-protection is a problem that we
03600	can deal with in only simple terms now, and there are obviously problems
03700	with sharp objects cutting through a soft finger and severing individual
03800	sensors or connections of several sensors.  For the moment, we guess 
03900	that simple design considerations to protect large nerves, and easy 
04000	replacement with low individual cost is a satisfactory solution.
04100	
04200		The sensors must be small, nominally smaller than 100 mil 
04300	centers.  Sensor densities such as this allow good positional location
04400	and description of objects.
04500	
04600		To manipulate complex objects, the fingers themselves should
04700	be deformable to provide gripping surfaces in contact.  This implies
04800	requirements on the sensors and their location.  If the sensors are
04900	anchored on a firm substrate deep under the skin, the intervening
05100	soft material will blurr force location considerably.
05200	That will degrade sensitivity and positional resolution.  A reasonable
05205	requirement is that the sensors be on the surface of the skin.
     

05300	TECHNICAL FEASIBILITY
05400		We have discussed the development of sensors with
05500	Dr. Ken Wise of Dr. Angell's laboratory .  Their laboratory
05600	has developed for medical use a small pressure sensor for
05700	catheter implant.  This sensor is a 60 mil diameter diaphragm
05800	etched from a silicon wafer, with a bridge of etched 
05900	piezoresistive elements to detect strains.  The bridge 
06000	design gives good stability and sensitivity, partially 
06100	compensating for temperature shifts.  These integrated circuit
06200	devices are fabricated in their laboratory.
06300		We had originally discussed using a flat array of sensors,
06400	with a somewhat simpler design  
06500	than the diaphragms used for pressure sensing.  However,
06600	it seems clear that what we really want are deformable fingers
06605	with sensors in the surface, and we must come up with a different
06610	design geometry.
06615		The integrated circuit technique seems to have adequate 
06620	sensitivity (.5 mv for 1 gm/sq cm which we feel can be considerably
06625	increased by larger currents.  Also we can detect with narrow band 
06630	phase sensitive AC detection).  The elements are sufficiently small
06635	and we hope replacement costs to be reasonable with integrated 
06640	circuit fabrication.  
06645		We do not yet have a sensor which would function in the 
06650	surface of skin.  Perhaps the pressure sensing diaphragms themselves
06655	would be adequate.
06660		We have examined other techniques and find none with promise
06665	of acceptability.  These include piezoelectric devices (with ac 
06670	detection, these are interesting but difficult technology),
06675	magnetostrictive devices (sensitivity is marginal and cost is high)
06680	and semiconductor strain gauges.
06685		A useful design consideration for any of these techniques
06690	is analog multiplexing, such as developed by Fairchild for their
06695	self-scanning photodiode arrays.
     

06800	IMMEDIATE UTILITY
06805		In discussing utility, we could take an extreme stand and
06810	say that touch sensors are unnecessary and that we could do a great 
06815	deal with just visual feedback, as can be easily demonstrated with
06820	prosthetic devices.  Vision has been difficult and we reasonably show
06825	in the following discussion that interesting tasks will require only
06830	simple use of touch sensing.  We could as well say that we could do 
06835	many of the current tasks without vision.  Instead, we want to use 
06840	each independent mode of information.  In some cases, only one mode
06845	such as touch, will be capable of giving needed information, and 
06850	in that sense will be necessary.  In the usual case, there will be
06855	redundant information which will be useful for confirmation and 
06860	discovering errors.
06865		To consider an immediately useful task, we want to use 
06870	touch sensing for centering in grasping.  The ability to do so 
06875	would lessen our need for absolute visual and arm calibration 
06880	and increase reliability and adaptability.  The basic operations
06885	are to sense touch on one side, use incremental motion to move 
06890	to touch the other side while holding the first side steady.
06892	Incremental motion already
06895	exists on both arms; however, it would be much more useful with
06900	our planned wrist with redundant degrees of freedom.
06905		Locating edges of objects requires existing techniques
06907	for edge finding.
06910	These are reasonably simple if high sensitivity is not needed 
06915	and if the pattern on the finger is simple.  In general, processing
06920	the pattern on the array of touch sensors raises difficult problems.
06925	The task above required only asking am I touching anything?  
06930	This task requires asking is there an obvious edge?
06935		Coordinating these two simple operations, yes/no and edge
06940	detection, with incremental motion allows feeling along a surface
06945	and feeling along an edge.  As mentioned above, incremental motion
06947	already 
06950	exists.  This might be called the one finger paradigm by which we
06955	can tell whether a surface is flat or curved, or an edge is straight
06960	or curved by moving along it.  
06965		The same techniques can be used in simple object description
06970	by the two-finger paradigm.  For this, we use two fingers to get cross
06975	section thickness along the length of an object.  This is very close 
06980	to the representation for three-dimensional objects as used by 
06985	Binford and Agin, and provides a considerable amount of descriptive 
06990	information on shape, with obviously simple and well-defined
06995	manipulations.
07000		The edge detection and incremental motion can be used for
07005	aligning stacks of blocks.
07010		Some simple self-alignment tasks for reliability can be done
07015	with simple touch sensing.  We would like very much to sense when we
07020	touch the table, and to refer positions relative to temporarily
07025	stationary objects.
07030	
07035	
     

07040	LONG-RANGE UTILITY
07045		We have dealt with simple objects, blocks and wedges;
07050	now we aim for complex objects with curved surfaces.  Shape
07052	description by touch is a useful extension of our abilities
07055	which would provide independent criticism of our visual judgment.
07060	We have shown some simple shape description techniques which
07160	would be useful with touch sensing.  Now we would like to
07260	mention groping and exploration by touch.  At first, it 
07360	seems conservative to class simple groping with long-range
07460	developments, but groping requires sensors on the external
07560	parts of the hand and, further, on the arm. An exploration 
07660	sequence, such as a spiral motion with diversion around any found
07760	object would be adequate for simple spatial sense and not difficult
07860	to program. It is not clear that such simple procedures by 
07960	themselves are adequate, but coupled with vision to be sure
08060	that exploration is done for very simple environments, can be
08160	useful.